//1.安装mongoose
//2.建立数据库连接
//3.创建模型 tagSchema 对数据进行约束
//4.模型生成对象      tagSchema ->tagModel

const mongoose=require("mongoose");//导入
//链接mongodb
mongoose.connect("mongodb://127.0.0.1:27017/text");//链接 text(数据库名)

//创建模型 tagSchema 对数据进行约束
const tagSchema=new mongoose.Schema({
    //text:string
    text:{
        type:String,
        minlength:2,
        maxlength:12
    }
})
//模型生成对象 tagModel
const tagModel=new mongoose.model("tag",tagSchema);
//导出
// module.exports = tagModel;
//添加
// const arr=[{text:"html"},{text:"sql"},{text:"nodejs"}];
// tagModel.insertMany(arr,function(err,docs){
//     console.log(err);
//     console.log(docs);
// });


//第二个页面
//创建模型 userSchema 对数据进行约束
const userSchema=new mongoose.Schema({
    //text:string
    username:{
      type:String,
      minlength:[2,"用户名至少2个字符"],
      maxlength:[12,"用户名最多12个字符"]
   },
   password:{
      type:String,
      validate:{
        validator: function(v) {
          return /[a-zA-Z0-9_]{6,12}/.test(v);
        },
        message: "密码只能是6-12位的数字、字母、下划线的任意组合"
      },
   }, 
   email: {
      type: String,
      validate:{
        validator: function(v) {
             return /\w+@\w+\.\w+/.test(v);
        },
        message: "邮箱格式不正确"
        },
   },
    group:{
      type: String,
      enum: {
        values: ['限制会员', '新手上路','组册会员','中级会员','高级会员'], //枚举 值和错误信息
        message: '{VALUE} is not supported'
      }
    }
})
//模型生成对象 userModel
const userModel=new mongoose.model("user",userSchema);
//第三个页面
//创建模型 contentSchema 对数据进行约束
const contentSchema=new mongoose.Schema({
      title:{
        type:String,
        minlength:6,
        maxlength:[12,"用户名最多12个字符"]
    },
    content:{
        type:String,
        minlength:10,
        maxlength:50
    },
    top:{
        type:Boolean,
        default:false

    }
})
//模型生成对象 contentModel
const contentModel=new mongoose.model("content",contentSchema);
//导出
module.exports = {tagModel,userModel,contentModel};

